define makedouble proc(f)
   return := proc(x) return := f(x,x) end
end;

define twice proc(x)
   return := makedouble(+)(x)
end;

define square proc(x)
   return := makedouble(*)(x)
end;

t := twice(10);
h := square(10)
